In general, semiconductor memories may be divided into two types, volatile memories and nonvolatile memories. Volatile memories lose stored data when power is removed, whereas nonvolatile memories, retain stored data when power is removed. Static random access memories (SRAMs) and dynamic random access memories (DRAMs) are two types of volatile memories. An SRAM cell is comprised of a bistable flip-flop, and data is stored by setting the state of the bistable flip-flop. In a DRAM cell, a capacitor is used to store data.
There are several types of nonvolatile memories. Read only memory (ROM) is a type of nonvolatile memory that is preprogrammed in the silicon by the semiconductor manufacturer. The preprogrammed contents of a ROM cannot be altered. Another type of nonvolatile memory is the Erasable Programmable Read Only Memory (EPROM). EPROMs can be erased and reprogrammed by the user using special ultraviolet light equipment. The Electrically Erasable Programmable Read Only Memory (EEPROM) is a type of nonvolatile memory that is reprogrammable without the special equipment needed for EPROMs. ROMs, EPROMs, and EEPROMs may be fabricated in relatively high density.
Nonvolatile memory is used in various ways in the design of digital systems. For example, nonvolatile memory may be used to store the standard program needed for enabling the various operations of a microprocessor. Also, nonvolatile memory may be used to provide look-up tables needed in some mathematical functions, or for the display of characters. In addition, nonvolatile memory is used in the design of control units for computers to store the sequence of control variables needed for enabling the various operations in the computer.
Nonvolatile memories have several disadvantages as compared to volatile memories such as SRAMSs. Nonvolatile memories suffer from relatively long access times, and they require relatively high power supply voltages for programming and for high speed operation. The relatively long access time of the nonvolatile memory may be reduced by using various circuit improvements, but the reduction in access time usually results in increased power consumption, or larger die sizes, with marginal increases in performance. In integrated circuits, it is common practice to use a lower power supply voltage to decrease power consumption. However, if a lower supply voltage is used with a nonvolatile memory, (for example, 3.3 volts), the long access time of the nonvolatile memory may be further increased.
Another solution to the problem of slow access times of nonvolatile memories has been to copy data from a nonvolatile memory array to a volatile memory array, upon power-up of the system. Then, the microprocessor in the system only has to access the SCRAM or DRAM. A disadvantage of this solution is that there needs to be as much volatile memory in the system as there is nonvolatile memory, substantially increasing the cost of the system. Also, a substantial amount of time is required to down load the contents of the nonvolatile memory into the volatile memory. The processor must wait until this transfer is complete before performing any other operations.